package chpt03.shopping;

import java.util.ArrayList;

public class ShoppingCartUsingList {
	// 存放商品的容器
	private ArrayList<Commodity> items = new ArrayList<>();
	// 添加商品。注意：未考虑将同一商品归为一类
	public void add(Commodity item) {
		items.add(item);
	}
	// 查看购物车中商品信息
	public void show() {
		for (Commodity commodity : items) {
			printCommodity(commodity);
		}
	}
	private void printCommodity(Commodity commodity) {
		System.out.printf("name: %s, price: %f%n", commodity.getName(), 
				commodity.getPrice());
	}
	// 删除商品：成功删除返回true，否则返回false
	// 按照商品名来删除购物车中的商品，只删除碰到的第一个。
	public boolean delete(Commodity c) {
		// 从后往前查找然后删除不会出错
		for (int i = items.size() -1 ; i >= 0 ; i--) {
			if (items.get(i).getName().equals(c.getName())) {
				items.remove(i);
				return true;
			}
		}
		return false;
	}
	// 清空购物车
	public void clear() {
		items.clear();
	}
	// 结算：返回结算购物车商品总价。
	public double checkout() {
		double x = 0;
		for (Commodity commodity : items) {
			x += commodity.getPrice();
		}
		return x;
	}
	// 获取购物车中商品数量
	public int getQty() {
		return items.size();
	}

}
